#include <iostream>
#include "ThreadPool.hpp"
#include "Task.hpp"
#include "Log.hpp"
#include <unistd.h>

using namespace log_ns;


// int main()
// {
//     // 显示器
//     for (int i = 0; i < 5; i++)
//     {
//         LOG(DEBUG, "hello screen, cnt: %d\n", i+1);
//     }

//     // 文件
//     ENABLE_FILE();
//     for (int i = 0; i < 5; i++)
//     {
//         LOG(DEBUG, "hello file, cnt: %d\n", i+1);
//     }
// }
int main()
{
    // // 创建线程池
    // ThreadPool<Task>* tp = new ThreadPool<Task>();
    // // 初始化，启动
    // tp->Init();
    // tp->Start();

    // 不断推送任务
    int cnt = 5;
    while(cnt)
    {
        sleep(1);
        Task t(1, 1);
        ThreadPool<Task>::GetInstance()->Equeue(t);
        LOG(INFO, "Equeue a task: %s\n", t.PrintTask().c_str());
    }

    ThreadPool<Task>::GetInstance()->Stop();
    LOG(INFO, "ThreadPool quit!\n");
    sleep(1);
    return 0;
}

// int main()
// {
//     // 创建一个线程池
//     ThreadPool<Task>* tp = new ThreadPool<Task>();
//     tp->Init();
//     tp->Start();
//     // 不断向线程池推送任务
//     int cnt = 5;
//     while(cnt)
//     {
//         sleep(1);
//         // 构建任务
//         Task t(1,1);
//         tp->Equeue(t);
//         std::cout << "main thread task push, cnt: " << cnt-- << std::endl;
//         sleep(1);
//     }

//     tp->Stop();
//     sleep(1);
//     return 0;
// }